/**
 * 
 */
package com.ubo.graphviz.model.graph.statement;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

/**
 * @author saludegu
 * 
 */
public class AttributeList {

	/**
	 * Liste des attributes.
	 */
	protected List<Attribute> mAttributes;

	/**
	 * Sous listes contenues par l'attribut.
	 */
	protected List<AttributeList> mSubList;

	/**
	 * 
	 * Constructor
	 * 
	 */
	public AttributeList() {

	}

	/**
	 * Ajout d'un attribut à la liste.
	 * 
	 * @param attribute
	 */
	public void addAttribute(Attribute attribute) {
		if (mAttributes == null)
			mAttributes = new ArrayList<Attribute>();
		mAttributes.add(attribute);
	}

	/**
	 * Ajout de la liste des attributs à la liste.
	 * 
	 * @param attributes
	 */
	public void addAllAttribute(Collection<Attribute> attributes) {
		if (mAttributes == null)
			mAttributes = new ArrayList<Attribute>(0);
		mAttributes.addAll(attributes);
	}

	/**
	 * Clear de la liste.
	 */
	public void clear() {
		if (mAttributes != null)
			mAttributes.clear();
	}

	/**
	 * Getter de la liste des attributs.
	 * 
	 * @return
	 */
	public Collection<Attribute> getAttributes() {
		return mAttributes;
	}

	/**
	 * Ajout d'une sousListe à la liste des sous listes.
	 * 
	 * @param newSubList
	 */
	public void addSubList(AttributeList newSubList) {
		if (mSubList == null)
			mSubList = new ArrayList<AttributeList>(0);
		mSubList.add(newSubList);
	}

	/**
	 * Getter des sousListes.
	 * 
	 * @return
	 */
	public Collection<AttributeList> getSubList() {
		return mSubList;
	}
}
